﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntitiesLayer.Entities;
using BusinnesLayer.LogicBusiness;

namespace ClinicaSanPablo
{
    public partial class MostrarGrillaReclamantes : System.Web.UI.Page
    {
        private System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        private QuejaReclamobl pBl = new QuejaReclamobl();
        protected void Page_Load(object sender, EventArgs e)
        {

            int page = Convert.ToInt32(Request.QueryString["page"]);
            int limit = Convert.ToInt32(Request.QueryString["rows"]);
            string sidx = Request.QueryString["sidx"].ToString();
            string sord = Request.QueryString["sord"].ToString();

            string Fechadesde = Request.QueryString["Fechadesde"] ?? "";
            string Fechahasta = Request.QueryString["Fechahasta"] ?? "";
            string codigo = Request.QueryString["codigo"] ?? "";

            string datos = MostrarReclamos(sidx, sord, page, limit, Fechadesde, Fechahasta, codigo);
            Response.ContentType = "application/json";
            Response.Write(datos);
            Response.End();

        }

        public string MostrarReclamos(string sidx, string sord, int page, int rows, string Fechadesde, string Fechahasta, string codigo)
        {

            if (codigo != "")
            {
                List<QuejaReclamo> lista = pBl.BucarReclamo(Fechadesde, Fechahasta, codigo);

                List<object> lstFilasAfilas = new List<object>();

                if (lista.Count > 0)
                {
                    foreach (var reclamo in lista)
                    {
                        var filaAfila = new
                        {
                            cell = new string[]
                        {
                            reclamo.VREC_COD_REC,
                            reclamo.DREC_FECHA_REGISTRO.ToString(),
                            reclamo.VREC_DESC_REC,
                            reclamo.VREC_APE_NOM_RECIB_POR,
                        }
                        };
                        lstFilasAfilas.Add(filaAfila);
                    }

                    int totalPag = (int)Math.Ceiling((decimal)rows / (decimal)lista.Count);
                    var data = new
                    {
                        total = totalPag,
                        // Total de páginas
                        page = page,
                        // Página actual
                        records = lista.Count,
                        // Total de registros (obtenido del modelo)
                        rows = lstFilasAfilas
                    };
                    return jsonSerializer.Serialize(data);
                }
                else
                {
                    var data = new
                    {
                        total = 0,
                        // Total de páginas
                        page = 1,
                        // Página actual
                        records = 0,
                        // Total de registros (obtenido del modelo)
                        rows = ""
                    };
                    return jsonSerializer.Serialize(data);
                }


            }
            else {
                var data = new
                {
                    total = 0,              
                    page = 1,                  
                    records = 0, 
                    rows = ""
                };
                return jsonSerializer.Serialize(data);
            }
            
        } 
    }
}